// pages/zhuye_detail/fM/fM.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    courseTypes: [], // 课程类型列表
    fmList: [], // 当前分类的FM列表
    currentTypeId: 1, // 当前选中的分类ID
    currentTypeName: '' // 当前选中的分类名称
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadCourseTypes()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 加载课程类型
  loadCourseTypes() {
    wx.request({
      url: 'http://120.26.112.194:80/api/admin/fm/courseType',
      method: 'GET',
      success: (res) => {
        console.log('课程类型数据:', res.data)
        if(res.data && res.data.data && res.data.data.length > 0) {
          const types = res.data.data
          const firstType = types[0]
          this.setData({
            courseTypes: types,
            currentTypeId: firstType.courseTypeId,
            currentTypeName: firstType.courseTypeName
          }, () => {
            this.loadFMListByType(firstType.courseTypeId)
          })
        }
      }
    })
  },

  // 切换分类
  changeType(e) {
    const typeId = e.currentTarget.dataset.id
    console.log('切换到分类:', typeId)
    
    // 获取分类名称
    const type = this.data.courseTypes.find(item => item.courseTypeId === typeId)
    if (!type) return
    
    this.setData({
      currentTypeId: typeId,
      currentTypeName: type.courseTypeName,
      fmList: [] // 清空当前列表
    }, () => {
      this.loadFMListByType(typeId)
    })
  },

  // 根据分类ID加载FM列表
  loadFMListByType(typeId) {
    wx.request({
      url: `http://120.26.112.194:80/api/user/fm/id`,
      method: 'GET',
      data: {
        id: typeId
      },
      success: (res) => {
        console.log(`分类${typeId}的FM列表:`, res.data)
        if(res.data && res.data.data) {
          // 确保每个列表项都有 fmId
          const list = res.data.data.map(item => ({
            ...item,
            fmId: item.fmId || item.id // 确保有 fmId
          }))
          this.setData({
            fmList: list
          })
        }
      }
    })
  },

  // 点击FM项目，跳转到详情页
  goToDetail(e) {
    const fmId = e.currentTarget.dataset.id
    console.log('跳转到FM详情, ID:', fmId)
    
    wx.request({
      url: `http://120.26.112.194:80/api/user/fm/detail`,
      method: 'GET',
      data: {
        id: fmId
      },
      success: (res) => {
        console.log('FM详情数据:', res.data)
        if(res.data && res.data.data) {
          // 获取数组中的第一个元素
          const fmData = Array.isArray(res.data.data) ? res.data.data[0] : res.data.data
          console.log('处理后的FM数据:', fmData)
          
          // 检查音频地址是否存在且不为空
          if(!fmData || !fmData.filename || fmData.filename.trim() === '') {
            console.error('FM数据中没有音频文件:', fmData)
            wx.showToast({
              title: '该FM没有音频',
              icon: 'none'
            })
            return
          }
          
          // 跳转到播放页面
          wx.navigateTo({
            url: '/pages/zhuye_detail/play/play?fmData=' + encodeURIComponent(JSON.stringify(fmData))
          })
        } else {
          wx.showToast({
            title: '获取详情失败',
            icon: 'none'
          })
        }
      },
      fail: (err) => {
        console.error('请求失败:', err)
        wx.showToast({
          title: '网络错误',
          icon: 'none'
        })
      }
    })
  }
})